/**
 * @Author YuanYuan
 * @Date 2022/4/24
 * @Time 11:09
 */
public class TestDemo {
    public static void main(String[] args) {
        // 求a和b的平均值
        int a = 10;
        int b = 20;
        int c = a + ((b - a) >> 1);
        System.out.println(c);
    }
    public static void main17(String[] args) {
        // 求a和b的平均值
        int a = 10;
        int b = 20;
        int c = a + (b - a) >> 1;
        System.out.println(c);
    }
    public static void main16(String[] args) {
        int a = 10;
        int b = 20;
        //a > b? a : b; // 报错：Error:(15, 14) java: 不是语句
    }
    public static void main15(String[] args) {
        int a = 10;
        int b = 20;
        //int c = a > b? 1 : 2.0;
    }
    public static void main14(String[] args) {
        int a = 10;
        int b = 20;
        int max = a > b ? a : b;
        System.out.println(max);
    }
    public static void main13(String[] args) {
        int a = 0xffffffff;
        System.out.printf("%x\n", a >>> 1);
// 运行结果(注意, 是按十六进制打印的) 7fffffff
    }
    public static void main12(String[] args) {
        int a = 0x10;
        System.out.printf("%x\n", a >> 1);
// 运行结果(注意, 是按十六进制打印的) 8
        int b = 0xffff0000;
        System.out.printf("%x\n", b >> 1);
// 运行结果(注意, 是按十六进制打印的) ffff8000
    }
    public static void main11(String[] args) {
        int a = 0x10;
        System.out.printf("%x\n", a << 1);
    }
    public static void main10(String[] args) {
        int a = 0x1;
        int b = 0x2;
        System.out.printf("%x\n", a ^ b);
    }
    public static void main9(String[] args) {
        int a = 0xf;
        System.out.printf("%x\n", ~a);
    }
    public static void main8(String[] args) {
        int a = 10;
        int b = 20;
        System.out.println(a | b);
    }
    public static void main7(String[] args) {
        int a = 10;
        int b = 20;
        System.out.println(a & b);
    }
    public static void main6(String[] args) {
        System.out.println(10 > 20 && 10 / 0 == 0);
        // 打印 false
        System.out.println(10 < 20 || 10 / 0 == 0);
        // 打印 true
    }
    public static void main5(String[] args) {
        int a = 1;
        System.out.println(!(a == 1));
// a == 1 为true，取个非就是false
        System.out.println(!(a != 1));
// a != 1 为false，取个非就是true
    }
    public static void main4(String[] args) {
        int a = 1;
        int b = 2;
        System.out.println(a == 1 || b == 2);
        // 左为真 且 右为真 则结果为真
        System.out.println(a == 1 || b > 100);
        // 左为真 但 右为假 则结果也为真
        System.out.println(a > 100 || b == 2);
        // 左为假 但 右为真 则结果也为真
        System.out.println(a > 100 || b > 100);
        // 左为假 且 右为假 则结果为假
    }
    public static void main3(String[] args) {
        int a = 1;
        int b = 2;
        System.out.println(a == 1 && b == 2);
// 左为真 且 右为真 则结果为真
        System.out.println(a == 1 && b > 100);
// 左为真 但 右为假 则结果为假
        System.out.println(a > 100 && b == 2);
// 左为假 但 右为真 则结果为假
        System.out.println(a > 100 && b > 100);
// 左为假 且 右为假 则结果为假
    }

    public static void main2(String[] args) {
        int a = 10;
        int b = 20;
// 注意：在Java中 = 表示赋值，要与数学中的含义区分
// 在Java中 == 表示相等
// 左为真 且 右为真 则结果为真
        System.out.println(a == 1 && b > 100);
// 左为真 但 右为假 则结果为假
        System.out.println(a > 100 && b == 2);
// 左为假 但 右为真 则结果为假
        System.out.println(a > 100 && b > 100);
// 左为假 且 右为假 则结果为假
    }
    public static void main1(String[] args) {
        int a = 1;
        int b = 0;
        System.out.println(a / b);
    }
}
